package  org.fantasy.common.db.center;

import  org.fantasy.common.db.Query;
import  org.fantasy.common.db.bean.Row;
import  org.fantasy.common.exception.DBException;

import java.util.List;
import java.util.Map;

/**
 * rem: 通过serviceName解析SQL并执行返回接口的接口类 aut: 刘先 ver: 1.0 log: 2010-4-1
 */

public interface QryCenter {

    /**
     * 解析后的QL
     * 
     * @param servcieName
     * @return
     */
    String getSql() throws DBException;

    /**
     * 执行普通查询
     * 
     * @return
     * @throws DBException
     */
    List<Row> qryList() throws DBException;

    /**
     * 执行分页查询
     * 
     * @return
     * @throws DBException
     */
    List<Row> qryPageList() throws DBException;

    /**
     * 执行新增，修改，删除操作
     * 
     * @return
     * @throws DBException
     */
    int update() throws DBException;

    /**
     * 返回QUERY接口，再通过QUERY接口的方法返回数据
     * 
     * @return
     * @throws DBException
     */
    Query getQuery() throws DBException;

    /**
     * 设置参数
     * 
     * @param name
     * @param value
     */
    QryCenter setParamMap(Map<String, Object> paramMap);

    /**
     * 取得运行时SQL
     * 
     * @return
     */
    String getRuntimeSql() throws DBException;

}
